Enterprises are complex organizations that may employ long-lived software systems that are accessible through a web-tier such as Internet web sites by a potentially unlimited number of end users. Such software systems may include content management systems configured to manage content items used by web sites.
Modern web sites must deliver an ever-increasing amount of dynamic web page content. Dynamic web page generation is a process where a server computer produces web page content just-in-time for delivery to a client computer (e.g., a web browser). Dynamic web pages differ from static web pages in that the content of a dynamic web page is determined when the web server computer receives a page request from a client computer.
Methods of creating documents from various source content have been conventionally described, e.g.:
J. Cooper, M. San Soucie, Method of Generating Document Using Tables Storing Pointers and Indexes, U.S. Pat. No. 4,996,662 (26 Feb. 1991) describes a document processing method that includes routines for controlling functions of a document manipulation system for manipulating documents.
R. Smith, D. Ting, J. Boer, M. Mendelssohn, Document Management and Production System, U.S. Pat. No. 5,181,162 (19 Jan. 1993) discloses an object-oriented document management and production system in which documents are represented as collections of components that may be combined and mapped on a page-by-page layout.
D. Dodge, S. Follett, A. Grecco, J. Tillman, Method and Apparatus for Document Production Using Common Document Database, U.S. Pat. No. 5,655,130 (5 Aug. 1997) discloses a system for producing a variety of documents from a common document database. In the described system, source documents are decomposed into encapsulated data that includes content along with classifying information about the content. Encapsulated data elements are saved to a database and can later be reassembled to form variation-specific documents.
All of the above-described systems involve decomposition of source documents into smaller components, storing the components in a database and reassembling the components to form different versions of the source document or entirely new documents. While these systems facilitate the building of variation-specific documents, they merely combine and recombine static elements in various ways. The disclosed systems do not provide any way of generating a document that incorporates dynamically discovered information. Furthermore, none of the described conventional systems concern themselves with optimizing the process of incorporating dynamic information into a delivered document by reducing required local storage resource usage.
Various other methods have been proposed for creating dynamic content in pages for delivery to a client over the Internet. For example, JAVA SERVER PAGES (Sun Microsystems, Inc. of Menlo Park Calif.) or ACTIVE SERVER PAGES (Microsoft Corporation of Redmond Wash.) create page content by having a web page's Java or C++ server code write all of the page content to the client browser via an output stream. A major failing of these solutions is that the server code and page design are both contained in the same hypertext markup language (HTML) file, making it difficult for anyone other than programmers to manage or modify the content on the pages.
Several issues arise when integrating managed objects with data from external repositories. For example, data used by conventional content management systems is also managed by the content management systems. To integrate data from external repositories into conventional content management systems (e.g., in order for enterprise users to use external data on their web site), external data often must be replicated, locally stored, and then synchronized with corresponding external repositories. This replicate-store-synchronize conventional approach to data integration is expensive, time-consuming, and complex.
As a specific example, an enterprise may have a content provider that is external and/or independent of the enterprise and that provides product-oriented data for use on the enterprise's web site. As may be readily appreciated, product-oriented data (e.g., product pricing, stock levels, etc.) is distinctly different from web site content (e.g., images, text, etc.) normally managed by conventional content management systems. For example, unlike images and text, product pricing or stock levels may change frequently. Further complicating the matter, the content provider may implement a proprietary program that tracks product-oriented data that is dynamically changing.
The necessity to replicate highly dynamic data provided by a content provider, store the replicated content, and continually synchronize content with the content provider to update rapidly changing data is not a desirable feature of convention content management approaches. Consequently, today's web content management systems continue to struggle with various issues relating to cost, complexity and efficiency involved with the management and delivery of dynamically rendered representations of external data.